package com.example.study.config;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;

@ToString
@Data
@ApiModel(value = "统一返回数据结构")
public class JsonResult<T> {
    public T data;
    @ApiModelProperty("统一返回状态码,0为成功，101为失败")
    public int code;
    @ApiModelProperty("统一返回提示")
    public String message;

    /**
     * 若没有数据返回，默认状态码为0，提示信息为：操作成功！
     */
    public JsonResult() {
        this.code = 200;
        this.message = "操作成功！";
    }

    /**
     * 若没有数据返回，可以人为指定状态码和提示信息
     * @param code
     * @param message
     */
    public JsonResult(String code, String message) {
        this.code = Integer.parseInt(code);
        this.message = message;
    }

    public JsonResult(int code, String message) {
        this.code = code;
        this.message = message;
    }


    /**
     * 有数据返回时，状态码为0，默认提示信息为：操作成功！
     * @param data
     */
    public JsonResult(T data) {
        this.data = data;
        this.code = 200;
        this.message = "操作成功！";
    }

    /**
     * 有数据返回，状态码为0，人为指定提示信息
     * @param data
     * @param message
     */
    public JsonResult(T data, String message) {
        this.data = data;
        this.code = 0;
        this.message = message;
    }
    // 省略get和set方法
}

